Out-Of-Band Management Of Third Party Adapter Configuration Settings In A Computing System

ABSTRACT

Out-of-band management of third party adapter configuration settings in a computing system, the computing system including one or more configurable adapters, including: retrieving, by an out-of-band configuration manager from an out-of-band configuration repository, out-of-band configuration settings for a configurable adapter; determining, by the out-of-band configuration manager, whether the out-of-band configuration settings for the configurable adapter have been updated; and responsive to determining that the out-of-band configuration settings for the configurable adapter have been updated: updating, by the out-of-band configuration manager, in-band configuration settings for the configurable adapter, wherein the in-band configuration settings for the configurable adapter are stored in an in-band configuration repository; retrieving, by the out-of-band configuration manager from the in-band configuration repository, metadata that includes updated in-band configuration settings for the configurable adapter; and sending, by the out-of-band configuration manager to a configuration implementer, the metadata that includes updated in-band configuration settings for the configurable adapter.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The field of the invention is data processing, or, more specifically,methods, apparatus, and products for out-of-band management of thirdparty adapter configuration settings in a computing system.

2. Description of Related Art

Current computer systems do not allow for off-line, out-of-bandmanagement of third-party option firmware settings for computing deviceswithin a computing system. Instead, third-party option firmware settingsfor computing devices within a computing system must be managed bymanipulating configuration data that is used to initialize and configurethe computing devices within a computing system. Manipulatingconfiguration data that is used to initialize and configure thecomputing devices within a computing system can often be an inefficientand laborious process.

SUMMARY OF THE INVENTION

Methods, apparatus, and products for out-of-band management of thirdparty adapter configuration settings in a computing system, thecomputing system including one or more configurable adapters, including:retrieving, by an out-of-band configuration manager from an out-of-bandconfiguration repository, out-of-band configuration settings for aconfigurable adapter; determining, by the out-of-band configurationmanager, whether the out-of-band configuration settings for theconfigurable adapter have been updated; and responsive to determiningthat the out-of-band configuration settings for the configurable adapterhave been updated: updating, by the out-of-band configuration manager,in-band configuration settings for the configurable adapter, wherein thein-band configuration settings for the configurable adapter are storedin an in-band configuration repository; retrieving, by the out-of-bandconfiguration manager from the in-band configuration repository,metadata that includes updated in-band configuration settings for theconfigurable adapter; and sending, by the out-of-band configurationmanager to a configuration implementer, the metadata that includesupdated in-band configuration settings for the configurable adapter.

In such a way, embodiments of the present invention enable out-of-bandmanagement of configuration settings for configurable adapters withoutmodifying the any of the processes that are currently used to configureadapters in a computing system. As such, augmenting exciting computingsystems to support out-of-band management of configuration settings forconfigurable adapters can be implemented with minimal costs, as existingconfiguration processes need not be modified.

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescriptions of exemplary embodiments of the invention as illustrated inthe accompanying drawings wherein like reference numbers generallyrepresent like parts of exemplary embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 sets forth a block diagram of automated computing machinerycomprising an example computing system useful in out-of-band managementof third party adapter configuration settings in a computing systemaccording to embodiments of the present invention.

FIG. 2 sets forth a flow chart illustrating an exemplary method forout-of-band management of third party adapter configuration settings ina computing system according to embodiments of the present invention.

FIG. 3 sets forth a flow chart illustrating an exemplary method forout-of-band management of third party adapter configuration settings ina computing system according to embodiments of the present invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Exemplary methods, apparatus, and products for out-of-band management ofthird party adapter configuration settings in a computing system (152)in accordance with the present invention are described with reference tothe accompanying drawings, beginning with FIG. 1. FIG. 1 sets forth ablock diagram of automated computing machinery comprising an examplecomputing system (152) useful in out-of-band management of third partyadapter configuration settings in a computing system according toembodiments of the present invention. The computing system (152) of FIG.1 includes at least one computer processor (156) or ‘CPU’ as well asrandom access memory (168) (‘RAM’) which is connected through a highspeed memory bus (166) and bus adapter (158) to processor (156) and toother components of the computing system (152).

The computing system (152) of FIG. 1 includes one or more configurableadapters (224). A configurable adapter (224) is any adapter that enablesthe computing system (152) to interact with other computing systems overa predetermined communications protocol. Such configurable adapters(224) may operate as, for example, a FiberChannel adapter, Ethernetadapter, Redundant Array of Independent Disks (‘RAID’) controller, andso on. In the example of FIG. 1, the configurable adapter (224) isconfigurable in the sense that operating aspects of the adapter, such asthe data communications protocol implemented by the adapter, the adapterport that is utilized for data communications using a particular datacommunications protocol, and so on, can be altered based on theconfiguration settings that are loaded into the adapter.

Stored in RAM (168) is an out-of-band configuration manager (202), amodule of computer program instructions for out-of-band management ofthird party adapter configuration settings in a computing system (152)according to embodiments of the present invention. The out-of-bandconfiguration manager (202) may be embodied as a module of computerprogram instructions for out-of-band management of configurationparameters for the configurable adapter (224). The out-of-bandconfiguration manager (202) is out-of-band in the sense that, in thenormal process of booting the computing system (152) and configuring theconfigurable adapter (224), the out-of-band configuration manager (202)takes no active role in actually configuring the configurable adapter(224). Computer program instructions such as system BIOS and the likeare instead responsible for actively configuring the configurableadapter (224). As such, while the out-of-band configuration manager(202) can alter configuration settings that are subsequently retrievedand applied by boot software such as system BIOS, the out-of-bandconfiguration manager (202) itself includes no computer programinstructions that perform the action of initializing and configuring aconfigurable adapter (224).

The out-of-band configuration manager (202) can perform out-of-bandmanagement of third party adapter configuration settings in thecomputing system (152) by retrieving, from an out-of-band configurationrepository, out-of-band configuration settings for the configurableadapter (224). The out-of-band configuration repository may be embodiedas computer memory that includes configuration parameters for theconfigurable adapter (224) and is accessible by the out-of-bandconfiguration manager (202). The out-of-band configuration repository isout-of-band in the sense that, in the normal process of booting thecomputing system and configuring the configurable adapter (224), bootsoftware such as system BIOS does not access the out-of-bandconfiguration repository to retrieve configuration parameters that areused when configuring and initializing a configurable adapter (224). Theout-of-band configuration repository may be embodied, for example, as adatabase or other data source managed by a system management controllersuch as, for example, an integrated management module (‘IMM’), baseboardmanagement controller (‘BMC’), and so on.

The out-of-band configuration manager (202) can retrieve out-of-bandconfiguration settings for the configurable adapter, for example, bysearching the out-of-band configuration repository for an entry thatcorresponds to an identifier for the configurable adapter (224). Theout-of-band configuration settings are settings that specify how theconfigurable adapter (224) is to operate. Example of such settingsinclude settings that specify which data communications protocol theconfigurable adapter (224) should utilize for data communications withother computing systems, settings that specify which port datacommunications with other computing systems should be conducted over,and so on. The out-of-band configuration settings are out-of-band in thesense that, in the normal process of booting the computing system andconfiguring the configurable adapter (224), boot software such as systemBIOS does not retrieve the out-of-band configuration settings, and theout-of-band configuration settings are not used directly by the bootsoftware when configuring and initializing a configurable adapter (224).

The out-of-band configuration manager (202) can further performout-of-band management of third party adapter configuration settings inthe computing system (152) by determining whether the out-of-bandconfiguration settings for the configurable adapter (224) have beenupdated. Determining whether the out-of-band configuration settings forthe configurable adapter (224) have been updated may be carried out bychecking an update flag contained in the out-of-band configurationsettings. Such an update flag may include a value that is used toindicate whether the out-of-band configuration settings have beenupdated since the out-of-band configuration manager (202) last accessedthe out-of-band configuration settings. Alternatively, determiningwhether the out-of-band configuration settings for the configurableadapter (224) have been updated may be carried out by comparing theout-of-band configuration settings for the configurable adapter (224) toa previous version of the out-of-band configuration settings for theconfigurable adapter (224). Comparing the out-of-band configurationsettings for the configurable adapter (224) to a previous version of theout-of-band configuration settings for the configurable adapter (224)can be carried out, for example, on a value-by-value basis or bycomputing a hash value for each version of settings and comparing theresultant hash values.

The out-of-band configuration manager (202) can further performout-of-band management of third party adapter configuration settings inthe computing system (152) by updating in-band configuration settingsfor the configurable adapter (224) in response to determining that theout-of-band configuration settings for the configurable adapter (224)have been updated. The in-band configuration settings are settings thatspecify how the configurable adapter (224) is to operate such. Examplesof such settings include settings that specify which data communicationsprotocol the configurable adapter (224) should utilize for datacommunications with other computing systems, settings that specify whichport data communications with other computing systems should beconducted over, and so on. The in-band configuration settings arein-band in the sense that, in the normal process of booting thecomputing system and configuring the configurable adapter (224), bootsoftware such as system BIOS does retrieve the in-band configurationsettings, and the in-band configuration settings are used directly bythe boot software when configuring and initializing a configurableadapter (224).

In the example of FIG. 1, the in-band configuration settings for theconfigurable adapter (224) may be stored in an in-band configurationrepository. The in-band configuration repository may be embodied ascomputer memory that includes configuration parameters for theconfigurable adapter (224) and is accessible by boot software such assystem BIOS. The in-band configuration repository is in-band in thesense that, in the normal process of booting the computing system andconfiguring the configurable adapter (224), boot software such as systemBIOS does access the in-band configuration repository to retrieveconfiguration parameters that are used when configuring and initializinga configurable adapter (224). The in-band configuration repository maybe embodied, for example, as a Human Interface Infrastructure (‘HII’)database or other data source accessible during the boot process.

In the example of FIG. 1, the out-of-band configuration manager (202)can update in-band configuration settings for the configurable adapter(224) by writing the changes made to the out-of-band configurationsettings to the in-band configuration repository. Consider an example inwhich the in-band configuration repository is embodied as an HIIdatabase. In such an example, updating in-band configuration settingsfor the configurable adapter (224) may be carried out by writing thechanges made to the out-of-band configuration settings to the HIIdatabase, for example, by using a RouteConfig( ) function that enablesdata to be committed to the HII database.

The out-of-band configuration manager (202) can further performout-of-band management of third party adapter configuration settings inthe computing system (152) by retrieving, from the in-band configurationrepository, metadata that includes updated in-band configurationsettings for the configurable adapter (224). Retrieving metadata thatincludes updated in-band configuration settings for the configurableadapter (224) may be carried out by reading the updated in-bandconfiguration settings from the in-band configuration repository andformatting the updated in-band configuration settings into a metadataformat. Consider an example in which the in-band configurationrepository is embodied as an HII database. In such an example,retrieving metadata that includes updated in-band configuration settingsfor the configurable adapter (224) may be carried out by reading theupdated in-band configuration settings from the in-band configurationrepository and formatting the updated in-band configuration settingsinto a metadata format, for example, by using an ExtractConfig( )function that enables data to be read from the HII database andretrieved as an HII package in extensible markup language (‘XML’)format.

The out-of-band configuration manager (202) can further performout-of-band management of third party adapter configuration settings inthe computing system (152) by sending, to a configuration implementer,the metadata that includes updated in-band configuration settings forthe configurable adapter (224). The configuration implementer is amodule of computer program instructions that can configure variouscomputing devices, including the configurable adapter (224), in thecomputing system (152). The configuration implementer may be executedduring the boot process of the computing system (152) and prior tohanding over control of the computing system (152) to the operatingsystem. The configuration implementer may be embodied, for example, as amodule of computer program instructions in BIOS, as a module of computerprogram instructions that is compliant with the Unified ExtensibleFirmware Interface (‘UEFI’) specification, and so on.

Also stored in RAM (168) is an operating system (154). Operating systemsuseful out-of-band management of third party adapter configurationsettings in a computing system according to embodiments of the presentinvention include UNIX™, Linux™, Microsoft XP™, AIX™, IBM's i5/OS™, andothers as will occur to those of skill in the art. The operating system(154) and the out-of-band configuration manager (202) in the example ofFIG. 1 are shown in RAM (168), but many components of such softwaretypically are stored in non-volatile memory also, such as, for example,on a disk drive (170).

The computing system (152) of FIG. 1 includes disk drive adapter (172)coupled through expansion bus (160) and bus adapter (158) to processor(156) and other components of the computing system (152). Disk driveadapter (172) connects non-volatile data storage to the computing system(152) in the form of disk drive (170). Disk drive adapters useful incomputers for out-of-band management of third party adapterconfiguration settings in a computing system according to embodiments ofthe present invention include Integrated Drive Electronics (‘IDE’)adapters, Small Computer System Interface (‘SCSI’) adapters, and othersas will occur to those of skill in the art. Non-volatile computer memoryalso may be implemented for as an optical disk drive, electricallyerasable programmable read-only memory (so-called ‘EEPROM’ or ‘Flash’memory), RAM drives, and so on, as will occur to those of skill in theart.

The example computing system (152) of FIG. 1 includes one or moreinput/output (‘I/O’) adapters (178). I/O adapters implementuser-oriented input/output through, for example, software drivers andcomputer hardware for controlling output to display devices such ascomputer display screens, as well as user input from user input devices(181) such as keyboards and mice. The example computing system (152) ofFIG. 1 includes a video adapter (209), which is an example of an I/Oadapter specially designed for graphic output to a display device (180)such as a display screen or computer monitor. Video adapter (209) isconnected to processor (156) through a high speed video bus (164), busadapter (158), and the front side bus (162), which is also a high speedbus.

The exemplary computing system (152) of FIG. 1 includes a communicationsadapter (167) for data communications with other computers (182) and fordata communications with a data communications network (100). Such datacommunications may be carried out serially through RS-232 connections,through external buses such as a Universal Serial Bus (‘USB’), throughdata communications networks such as IP data communications networks,and in other ways as will occur to those of skill in the art.Communications adapters implement the hardware level of datacommunications through which one computer sends data communications toanother computer, directly or through a data communications network.Examples of communications adapters useful for out-of-band management ofthird party adapter configuration settings in a computing systemaccording to embodiments of the present invention include modems forwired dial-up communications, Ethernet (IEEE 802.3) adapters for wireddata communications network communications, and 802.11 adapters forwireless data communications network communications.

For further explanation, FIG. 2 sets forth a flow chart illustrating anexemplary method for out-of-band management of third party adapterconfiguration settings in a computing system according to embodiments ofthe present invention. The example method of FIG. 2 is carried out in acomputing system (152) that includes one or more configurable adapters(224). In the example method of FIG. 2, a configurable adapter (224) isany adapter that enables the computing system (152) to interact withother computing systems over a predetermined communications protocol.Such configurable adapters (224) may operate as, for example, aFiberChannel adapter, Ethernet adapter, RAID controller, and so on. Inthe example method of FIG. 2, the configurable adapter (224) isconfigurable in the sense that operating aspects of the adapter, such asthe data communications protocol implemented by the adapter, the adapterport that is utilized for data communications using a particular datacommunications protocol, and so on, can be altered based on theconfiguration settings that are loaded into the adapter.

The example method of FIG. 2 includes retrieving (204), by anout-of-band configuration manager (202) from an out-of-bandconfiguration repository (228), out-of-band configuration settings (212)for a configurable adapter (224). In the example method of FIG. 2, anout-of-band configuration manager (202) may be embodied as a module ofcomputer program instructions for out-of-band management ofconfiguration parameters for the configurable adapter (224). Theout-of-band configuration manager (202) is out-of-band in the sensethat, in the normal process of booting the computing system andconfiguring the configurable adapter (224), the out-of-bandconfiguration manager (202) takes no active role in actually configuringthe configurable adapter (224). Computer program instructions such assystem BIOS and the like are instead responsible for activelyconfiguring the configurable adapter (224). As such, while theout-of-band configuration manager (202) can alter configuration settingsthat are subsequently retrieved and applied by boot software such assystem BIOS, the out-of-band configuration manager (202) itself includesno computer program instructions that perform the action of initializingand configuring a configurable adapter (224).

In the example method of FIG. 2, the out-of-band configurationrepository (228) may be embodied as computer memory that includesconfiguration parameters for the configurable adapter (224) and isaccessible by the out-of-band configuration manager (202). Theout-of-band configuration repository (228) is out-of-band in the sensethat, in the normal process of booting the computing system andconfiguring the configurable adapter (224), boot software such as systemBIOS does not access the out-of-band configuration repository (228) toretrieve configuration parameters that are used when configuring andinitializing a configurable adapter (224). In the example method of FIG.2, the out-of-band configuration repository (228) may be embodied, forexample, as a database or other data source managed by a systemmanagement controller such as, for example, an IMM, BMC, and so on.

In the example method of FIG. 2, retrieving (204) out-of-bandconfiguration settings (212) for a configurable adapter (224) may becarried out, for example, by searching the out-of-band configurationrepository (228) for an entry that corresponds to an identifier for theconfigurable adapter (224). The out-of-band configuration settings (212)of FIG. 2 are settings that specify how the configurable adapter (224)is to operate such as, for example, settings that specify which datacommunications protocol the configurable adapter (224) should utilizefor data communications with other computing systems, settings thatspecify which port data communications with other computing systemsshould be conducted over, and so on. In the example of FIG. 2, theout-of-band configuration settings (212) are out-of-band in the sensethat, in the normal process of booting the computing system andconfiguring the configurable adapter (224), boot software such as systemBIOS does not retrieve the out-of-band configuration settings (212), andthe out-of-band configuration settings (212) are not used directly bythe boot software when configuring and initializing a configurableadapter (224).

The example method of FIG. 2 also includes determining (206), by theout-of-band configuration manager (202), whether the out-of-bandconfiguration settings (212) for the configurable adapter (224) havebeen updated. In the example method of FIG. 2, determining (206) whetherthe out-of-band configuration settings (212) for the configurableadapter (224) have been updated may be carried out by checking an updateflag contained in the out-of-band configuration settings (212). Such anupdate flag may include a value that is used to indicate whether theout-of-band configuration settings (212) have been updated since theout-of-band configuration manager (202) last accessed the out-of-bandconfiguration settings (212). Alternatively, determining (206) whetherthe out-of-band configuration settings (212) for the configurableadapter (224) have been updated may be carried out by comparing theout-of-band configuration settings (212) for the configurable adapter(224) to a previous version of the out-of-band configuration settings(212) for the configurable adapter (224). Comparing the out-of-bandconfiguration settings (212) for the configurable adapter (224) to aprevious version of the out-of-band configuration settings (212) for theconfigurable adapter (224) can be carried out, for example, on avalue-by-value basis or by computing a hash value for each version ofsettings and comparing the resultant hash values.

The example method of FIG. 2 also includes, responsive to determiningthat the out-of-band configuration settings (212) for the configurableadapter (224) have (210) been updated, updating (214) in-bandconfiguration settings for the configurable adapter (224). The in-bandconfiguration settings of FIG. 2 are settings that specify how theconfigurable adapter (224) is to operate such as, for example, settingsthat specify which data communications protocol the configurable adapter(224) should utilize for data communications with other computingsystems, settings that specify which port data communications with othercomputing systems should be conducted over, and so on. In the example ofFIG. 2, the in-band configuration settings are in-band in the sensethat, in the normal process of booting the computing system andconfiguring the configurable adapter (224), boot software such as systemBIOS does retrieve the in-band configuration settings, and the in-bandconfiguration settings are used directly by the boot software whenconfiguring and initializing a configurable adapter (224).

In the example method of FIG. 2, the in-band configuration settings forthe configurable adapter (224) are stored in an in-band configurationrepository (226). The in-band configuration repository (226) may beembodied as computer memory that includes configuration parameters forthe configurable adapter (224) and is accessible by boot software suchas system BIOS. The in-band configuration repository (226) is in-band inthe sense that, in the normal process of booting the computing systemand configuring the configurable adapter (224), boot software such assystem BIOS does access the in-band configuration repository (226) toretrieve configuration parameters that are used when configuring andinitializing a configurable adapter (224). In the example method of FIG.2, the in-band configuration repository (226) may be embodied, forexample, as an HII database or other data source accessible during theboot process.

The example method of FIG. 2 also includes, responsive to determiningthat the out-of-band configuration settings (212) for the configurableadapter (224) have (210) been updated, updating (214) in-bandconfiguration settings for the configurable adapter (224). In theexample of method of FIG. 2, updating (214) in-band configurationsettings for the configurable adapter (224) may be carried out bywriting the changes made to the out-of-band configuration settings (212)to the in-band configuration repository (226). Consider an example inwhich the in-band configuration repository (226) is embodied as an HIIdatabase. In such an example, updating (214) in-band configurationsettings for the configurable adapter (224) may be carried out bywriting the changes made to the out-of-band configuration settings (212)to the HII database, for example, by using a RouteConfig( ) functionthat enables data to be committed to the HII database.

The example method of FIG. 2 also includes retrieving (216), by theout-of-band configuration manager (202) from the in-band configurationrepository (226), metadata (220) that includes updated in-bandconfiguration settings for the configurable adapter (224). In theexample of method of FIG. 2, retrieving (216) metadata (220) thatincludes updated in-band configuration settings for the configurableadapter (224) may be carried out by reading the updated in-bandconfiguration settings from the in-band configuration repository (226)and formatting the updated in-band configuration settings into ametadata format. Consider an example in which the in-band configurationrepository (226) is embodied as an HII database. In such an example,retrieving (216) metadata (220) that includes updated in-bandconfiguration settings for the configurable adapter (224) may be carriedout by reading the updated in-band configuration settings from thein-band configuration repository (226) and formatting the updatedin-band configuration settings into a metadata format, for example, byusing an ExtractConfig( ) function that enables data to be read from theHII database and retrieved as an HII package in XML format.

The example method of FIG. 2 also includes sending (218), by theout-of-band configuration manager (202) to a configuration implementer(222), the metadata (220) that includes updated in-band configurationsettings for the configurable adapter (224). In the example method ofFIG. 2, a configuration implementer (222) is a module of computerprogram instructions that can configure various computing devices,including the configurable adapter (224), in the computing system (152).The configuration implementer (222) may be executed during the bootprocess of the computing system (152) and prior to handing over controlof the computing system (152) to the operating system. The configurationimplementer (222) may be embodied, for example, as a module of computerprogram instructions in BIOS, as a module of computer programinstructions that is compliant with the UEFI specification, and so on.

Readers will appreciate that embodiments of the present inventionenables configuration settings for configurable adapters to be managedout-of-band and without modifying the any of the processes that arecurrently used to configure adapters in a computing system. As such,augmenting exciting computing systems to support out-of-band managementof configuration settings for configurable adapters can be implementedwith minimal costs, as existing configuration processes need not bemodified.

For further explanation, FIG. 3 sets forth a flow chart illustrating afurther exemplary method for out-of-band management of third partyadapter configuration settings in a computing system according toembodiments of the present invention. The example method of FIG. 3 issimilar to the example method of FIG. 2, as it also includes retrieving(204) out-of-band configuration settings (212) for a configurableadapter (224), determining (206) whether the out-of-band configurationsettings (212) for the configurable adapter (224) have been updated,updating (214) in-band configuration settings for the configurableadapter (224), retrieving (216) metadata (220) that includes updatedin-band configuration settings for the configurable adapter (224), andsending (218) the metadata (220) that includes updated in-bandconfiguration settings for the configurable adapter (224).

In the example method of FIG. 3, determining (206) whether theout-of-band configuration settings (212) for the configurable adapter(224) have been updated can comparing (302) a hash value for currentout-of-band configuration settings (212) to a hash value for previousout-of-band configuration settings. In the example method of FIG. 3, theout-of-band configuration manager (202) may retain previous versions ofthe out-of-band configuration settings (212) in computer memory that isaccessible by the out-of-band configuration manager (202). Theout-of-band configuration manager (202) may retrieve the most recentprevious version of the out-of-band configuration settings (212) using adate stamp or other indicator and compute a hash value for the mostrecent previous version of the out-of-band configuration settings (212).Alternatively, the out-of-band configuration manager (202) may simplyretain the hash value for the most recent previous version of theout-of-band configuration settings (212).

The hash value for the most recent previous version of the out-of-bandconfiguration settings (212) may be compared to the hash value for thecurrent out-of-band configuration settings (212) to determine (206)whether the out-of-band configuration settings (212) have been updated.If the hash value of the most recent previous version of the out-of-bandconfiguration settings (212) and the hash value of the currentout-of-band configuration settings (212) are identical, the out-of-bandconfiguration settings (212) have not been updated. If, however, thehash value of the most recent previous version of the out-of-bandconfiguration settings (212) and the hash value of the currentout-of-band configuration settings (212) are not identical, theout-of-band configuration settings (212) have been updated as evidencedby the fact that applying the same hash function to the most recentprevious version of the out-of-band configuration settings (212) and tothe hash value of the current out-of-band configuration settings (212)yields different hash values.

In the example method of FIG. 3, the in-band configuration repository(226) may be embodied as an HII database. As such, updating (214)in-band configuration settings for the configurable adapter (224) caninclude writing (304) updated out-of-band configuration settings (212)to the HII database. In the example method of FIG. 3, writing (304)updated out-of-band configuration settings (212) to the HII database maybe carried out, for example, by using a RouteConfig( ) function thatenables data to be committed to the HII database. The RouteConfig( ) maybe utilized to extract out-of-band configuration settings (212) that arestored in XML format by the out-of-band configuration manager (202) andcommit the extracted out-of-band configuration settings (212) to an HIIdatabase.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

It will be understood from the foregoing description that modificationsand changes may be made in various embodiments of the present inventionwithout departing from its true spirit. The descriptions in thisspecification are for purposes of illustration only and are not to beconstrued in a limiting sense. The scope of the present invention islimited only by the language of the following claims.

1-5. (canceled)
 6. An apparatus for out-of-band management of thirdparty adapter configuration settings in a computing system, thecomputing system including one or more configurable adapters, theapparatus comprising a computer processor, a computer memory operativelycoupled to the computer processor, the computer memory having disposedwithin it computer program instructions that, when executed by thecomputer processor, cause the apparatus to carry out the steps of:retrieving, by an out-of-band configuration manager from an out-of-bandconfiguration repository, out-of-band configuration settings for aconfigurable adapter; determining, by the out-of-band configurationmanager, whether the out-of-band configuration settings for theconfigurable adapter have been updated; and responsive to determiningthat the out-of-band configuration settings for the configurable adapterhave been updated: updating, by the out-of-band configuration manager,in-band configuration settings for the configurable adapter, wherein thein-band configuration settings for the configurable adapter are storedin an in-band configuration repository; retrieving, by the out-of-bandconfiguration manager from the in-band configuration repository,metadata that includes updated in-band configuration settings for theconfigurable adapter; and sending, by the out-of-band configurationmanager to a configuration implementer, the metadata that includesupdated in-band configuration settings for the configurable adapter. 7.The apparatus of claim 6 wherein the out-of-band configurationrepository is managed by a system management controller.
 8. Theapparatus of claim 6 wherein the in-band configuration repository is aHuman Interface Infrastructure (HII) database.
 9. The apparatus of claim8 wherein updating in-band configuration settings for the configurableadapter further comprises writing new out-of-band configuration settingsto the HII database.
 10. The apparatus of claim 6 wherein determiningwhether the out-of-band configuration settings for the configurableadapter have been updated includes comparing a hash value for currentout-of-band configuration settings to a hash value for previousout-of-band configuration settings.
 11. A computer program product forout-of-band management of third party adapter configuration settings ina computing system, the computing system including one or moreconfigurable adapters, the computer program product disposed upon acomputer readable medium, the computer program product comprisingcomputer program instructions, when executed by a computer processor,cause a computer to carry out the steps of: retrieving, by anout-of-band configuration manager from an out-of-band configurationrepository, out-of-band configuration settings for a configurableadapter; determining, by the out-of-band configuration manager, whetherthe out-of-band configuration settings for the configurable adapter havebeen updated; and responsive to determining that the out-of-bandconfiguration settings for the configurable adapter have been updated:updating, by the out-of-band configuration manager, in-bandconfiguration settings for the configurable adapter, wherein the in-bandconfiguration settings for the configurable adapter are stored in anin-band configuration repository; retrieving, by the out-of-bandconfiguration manager from the in-band configuration repository,metadata that includes updated in-band configuration settings for theconfigurable adapter; and sending, by the out-of-band configurationmanager to a configuration implementer, the metadata that includesupdated in-band configuration settings for the configurable adapter. 12.The computer program product of claim 11 wherein the out-of-bandconfiguration repository is managed by a system management controller.13. The computer program product of claim 11 wherein the in-bandconfiguration repository is a Human Interface Infrastructure (HII)database.
 14. The computer program product of claim 13 wherein updatingin-band configuration settings for the configurable adapter furthercomprises writing new out-of-band configuration settings to the HIIdatabase.
 15. The computer program product of claim 11 whereindetermining whether the out-of-band configuration settings for theconfigurable adapter have been updated includes comparing a hash valuefor current out-of-band configuration settings to a hash value forprevious out-of-band configuration settings.
 16. The computer programproduct of claim 11 wherein the computer readable medium furthercomprises a computer readable signal medium.
 17. The computer programproduct of claim 11 wherein the computer readable medium furthercomprises a computer readable storage medium.